[!NOTE] Q: 为什么要设置虚拟环境 A: 首先,它防止版本冲突。它将每个代理的依赖项隔离开来,确保一个代理的更新不会意外地破坏另一个工具或系统。
cd path\to\your\project
python -m venv agent-env
agent-env\scriptslactivate
pip install dependencies
pip freeze > requirements.txt
理解 ReAct 推理循环
在自主 AI 开发中,ReAct 循环扮演着同样的角色。它为 AI 系统提供了一种结构化的方式来思考任务、选择合适的工具并智能地行动。ReAct 将模型转变为一个由迭代思考和行动驱动的解决问题代理,而不是简单地用文本回应的聊天机器人。

ReAct 概述和目的
ReAct,全称 Reasoning + Acting,是现代自主系统的核心。它将逻辑推理与工具执行相结合,使 AI 能够像人类助手一样处理任务。其核心优势包括:
- 支持多步骤、结构化的工作流。
- 启用工具使用,如 API、记忆检索或计算。
- 允许代理根据中间结果进行适应。
- 为有目标导向的行动提供可预测的周期
ReAct Loop
这个过程始于代理接收到输入,类似于实验室助理接到任务。代
-
输入接收:
- 代理的旅程始于接收到某种输入。这可以是用户提出的问题、从记忆中检索的信息,或者是工具输出的结果。
-
观察信息:
- 代理在接收到输入后,会首先观察和分析这些信息。这一步骤类似于实验室助理在接到任务后,先查看所有相关的笔记和资料,以确保理解上下文。
-
设定上下文:
- 观察信息的过程为后续的决策打下基础。通过理解输入的内容,代理能够更好地决定下一步的行动。
推理:代理在行动前思考
在采取任何行动之前,代理会进行内部推理。它可能会将任务分解为步骤,考虑哪个工具最合适,或分析它已经掌握的信息。推理是代理的"计划时刻",确保行动是有意而非冲动的。这就像助理决定是查找数据、运行实验还是请求澄清后再继续进行。
- 内部推理:代理在行动前会思考,确保其行动是经过深思熟虑的,而不是随意的。
- 任务分解:代理可能会将复杂任务拆分为更小的步骤,便于处理。
- 工具选择:代理会考虑使用哪些工具来完成任务。
- 信息分析:代理会回顾已有的信息,以便更好地制定计划。
行动:触发工具以推进
一旦代理有了计划,它通常通过调用函数或外部工具来采取行动。这可能是一个搜索查询、API 调用、计算或内存查找。在代理框架中,这些行动通常表示为结构化的 JSON 命令,告诉系统使用哪个工具以及传递什么参数。就像实验室助理根据他们的推理执行特定任务一样,代理精确地 执行函数,并且是确定性的。
- 采取行动:代理在制定计划后,会执行相应的操作。
- 工具调用:行动可能涉及调用外部工具,如API或进行计算。
- JSON命令:代理的操作通常以JSON格式描述,明确指定使用的工具和参数。
- 精确执行:代理的操作是基于推理的结果,确保每一步都是有目的的。
反思:从每一步中学习
行动之后,代理评估结果。工具是否返回了所需信息?问题是否解决,还是需要其他步骤?这种反思反映了人类助手在继续之前检查实验是否成功或查询是否提供了正确数据的过程。反思可以防止无限循环,并帮助助手与目标保持一致。
- 结果评估:代理在行动后会检查结果是否符合预期。
- 问题解决:代理需要判断问题是否已经解决,或者是否需要进一步的步骤。
- 防止循环:通过反思,代理可以避免陷入无尽的循环,并确保行动与目标一致。
完成循环:多步问题解决
代理会持续循环观察 → 推理 → 行动 → 反思,直到得出最终答案。在实践中,这可能涉及多次工具调用、多轮推理,或记忆查询与计算的组合。就像研究人员不断迭代直到找到解决方案一样,ReAct 循环使 AI 助手能够处理跨越多步骤的任务。
- 循环过程:代理不断重复观察、推理、行动和反思的过程,直到解决问题。
- 多步任务:在复杂任务中,代理可能需要多次调用工具和进行推理。
- 迭代解决:代理的工作方式类似于研究人员,通过反复尝试寻找解决方案。